Next: Long, Previous: Ln, Up: Pseudo Ops

### 7.20 `.file` fileno filename

When emitting dwarf2 line number information `.file` assigns filenames to the `.debug_line` file name table. The fileno operand should be a unique positive integer to use as the index of the entry in the table. The filename operand is a C string literal.

The detail of filename indicies is exposed to the user because the filename table is shared with the `.debug_info` section of the dwarf2 debugging information, and thus the user must know the exact indicies that table entries will have.

### 7.21 `.loc` fileno lineno`[`column`] [`options`]`

The `.loc` directive will add row to the `.debug_line` line number matrix corresponding to the immediately following assembly instruction. The fileno, lineno, and optional column arguments will be applied to the `.debug_line` state machine before the row is added.

The options are a sequence of the following tokens in any order:

`basic_block`
  This option will set the `basic_block` register in the `.debug_line` state machine to `true`.
`prologue_end`
  This option will set the `prologue_end` register in the `.debug_line` state machine to `true`.
`epilogue_begin`
  This option will set the `epilogue_begin` register in the `.debug_line` state machine to `true`.
`is_stmt` value
  This option will set the `is_stmt` register in the `.debug_line` state machine to `value`, which must be either 0 or 1.
`isa` value
  This directive will set the `isa` register in the `.debug_line` state machine to value, which must be an unsigned integer.

### 7.22 `.loc_mark_blocks` enable

The `.loc_mark_blocks` directive makes the assembler emit an entry to the `.debug_line` line number matrix with the `basic_block` register in the state machine set whenever a code label is seen. The enable argument should be either 1 or 0, to enable or disable this function respectively.